from flask import Flask


def create_app() -> Flask:
    app = Flask(
        __name__,
        static_folder="static",
        template_folder="templates",
        static_url_path="/static",
    )

    # 注册蓝图（若存在）
    try:
        from app.routes import bp as main_bp  # type: ignore

        app.register_blueprint(main_bp)
    except Exception:
        # 如果蓝图不可用，应用仍可启动
        pass

    @app.before_request
    def ignore_sourcemaps():
        # 前端库常带 //# sourceMappingURL 注释，浏览器会尝试加载 .map 文件。
        # 在离线/未提供 map 的情况下，直接返回 204，避免 404 噪音。
        from flask import request
        if request.path.endswith('.map'):
            return ("", 204)

    @app.get("/health")
    def health_check():
        return {"status": "ok"}

    return app


if __name__ == "__main__":
    app = create_app()
    app.run(host="0.0.0.0", port=5000, debug=True)


